'''
匿名函数：lambda
'''
def test():
    print('-----test-----')

def func(a,f):
    print('--->',a)
    f()

func(100,test)
print('------------------')

def func1(a,f): # f = lambda x:x**2
    print('+++>',a)
    r = f(a)
    print('===>',r)

func1(8,lambda x:x**2)
print('------------------')

'''
高阶函数：一个函数的参数是另一个函数，高阶函数
系统高阶函数：max min sorted
'''
m = max(5,6)
print(m)

m = max([1,2,3,4,5])
print(m)

list1 = [('tom',19),('jack',18),('rose',20)]
m = max(list1,key=lambda x:x[1])
print(m)

mi = min(list1,key=lambda x:x[1])
print(mi)

s = sorted(list1,key=lambda x:x[1])
print(s)

s = sorted(list1,key=lambda x:x[1],reverse=True)
print(s)

# filter的匿名函数要求返回值必须是bool类型，只有bool类型结果为True的元素才是符合过滤条件的
rr = filter(lambda x:x[1] > 19,list1)
print(list(rr))

ma = map(lambda x:x[1],list1)
print(list(ma))
# 通过匿名函数指明提取的内容，并对内容进行加工
ma = map(lambda x:x[0].title(),list1)
print(list(ma))

